package cn.tedu.net.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UDPReceiverDemo {
    public static void main(String[] args) throws IOException {
        //创建UDP的接收端的对象---监听端口号
        DatagramSocket ds=new DatagramSocket(9090);

        //准备数据包来接收数据---创建代表数据包的类的对象
        //第一个参数用于接收发送端发送的数据
        //第二个参数表示可以接收数据的真实长度值（小于等于第一个参数数组长度）
        DatagramPacket dp=new DatagramPacket(new byte[1024],1024);

        //接受数据
        ds.receive(dp);//会让线程对象阻塞

        //关流
        ds.close();

        //解析数据包
        //返回IP地址值
        System.out.println(dp.getAddress());
        //getData()---返回接收到的数据内容（返回的是字节数组）
        //getLength()---返回数据内容的长度
        System.out.println(
                new String(dp.getData(),0,dp.getLength()));
    }
}
